/**
 * Dashboard页面相关工具函数
 */

import { getThemeVariables } from './themeUtils';

/**
 * 生成随机访问量数据
 * @param {number} days - 生成的天数
 * @param {string} type - 数据类型: week, month, year
 * @returns {Array} 访问量数据数组
 */
export const generateVisitData = (days = 7, type = 'week') => {
  const result = [];
  const today = new Date();
  const multiplier = type === 'week' ? 100 : type === 'month' ? 50 : 20;
  
  for (let i = 0; i < days; i++) {
    const date = new Date();
    date.setDate(today.getDate() - (days - i - 1));
    
    const formattedDate = formatDate(date, type);
    const visits = Math.floor(Math.random() * multiplier * 10) + (multiplier * 10);
    
    result.push({
      date: formattedDate,
      visits: visits
    });
  }
  
  return result;
};

/**
 * 根据类型格式化日期
 * @param {Date} date - 日期对象
 * @param {string} type - 数据类型: week, month, year
 * @returns {string} 格式化后的日期字符串
 */
export const formatDate = (date, type) => {
  const year = date.getFullYear();
  const month = String(date.getMonth() + 1).padStart(2, '0');
  const day = String(date.getDate()).padStart(2, '0');
  
  if (type === 'week') {
    return `${month}-${day}`;
  } else if (type === 'month') {
    return `${month}-${day}`;
  } else {
    return `${year}-${month}`;
  }
};

/**
 * 生成分类数据
 * @returns {Array} 分类数据数组
 */
export const generateCategoryData = () => {
  const primaryColor = getThemeVariables()['--primary-color'];
  return [
    { name: '前端开发', value: 42, color: primaryColor },
    { name: '后端开发', value: 28, color: '#67C23A' },
    { name: '产品设计', value: 18, color: '#E6A23C' },
    { name: '运维', value: 12, color: '#F56C6C' },
    { name: '其他', value: 8, color: '#909399' },
  ];
};

/**
 * 生成最新文章数据
 * @param {number} count - 文章数量
 * @returns {Array} 文章数据数组
 */
export const generateArticles = (count = 5) => {
  const categories = ['前端开发', '后端开发', '产品设计', 'UI/UX', '运维'];
  const titles = [
    'Vue3 + Element Plus 搭建后台管理系统',
    'React 18 新特性详解与实践',
    'Node.js 微服务架构设计',
    '前端性能优化最佳实践',
    'Docker 容器化部署实战',
    '响应式设计与移动端适配',
    'TypeScript 高级类型与实践',
    '后台管理系统权限设计',
    'Git 工作流与团队协作',
    'CI/CD 自动化部署流程'
  ];
  
  return Array.from({ length: count }, (_, i) => {
    const date = new Date();
    date.setDate(date.getDate() - i);
    
    return {
      id: i + 1,
      title: titles[i % titles.length],
      category: categories[i % categories.length],
      views: Math.floor(Math.random() * 2000) + 500,
      date: formatDate(date, 'week')
    };
  });
};

/**
 * 生成最新评论数据
 * @param {number} count - 评论数量
 * @returns {Array} 评论数据数组
 */
export const generateComments = (count = 5) => {
  const comments = [
    '这篇文章写得非常好，很有启发性，期待更新！',
    '思路清晰，代码示例很实用，学到了很多。',
    '讲解得很细致，对新手很友好，感谢分享。',
    '有些地方没太理解，能否详细解释一下？',
    '文章内容丰富，但有些代码示例过于复杂，希望能简化一些。',
    '案例很实用，正好解决了我最近遇到的问题，太感谢了！',
    '图文并茂，讲解得很清楚，收藏了！',
    '内容很好，但有些概念没有深入解释，希望能补充。',
    '这篇文章解决了我的困惑，非常感谢作者的分享！',
    '文章结构清晰，内容全面，是一篇很好的参考资料。'
  ];
  
  return Array.from({ length: count }, (_, i) => {
    const date = new Date();
    date.setDate(date.getDate() - i);
    
    return {
      id: i + 1,
      user: `访客${i + 1}`,
      avatar: `https://cube.elemecdn.com/0/88/03b0d39583f48206768a7534e55bcpng.png`,
      content: comments[i % comments.length],
      date: formatDate(date, 'week')
    };
  });
}; 